''' queue 线程安全
    Queue.put() 在queue指定了size的时候， 如果队列满了， 就会阻塞put， 直到有空间put
    Queue.get() 队列里如果没有元素， 那么该方法就会阻塞， 直到有新的元素进来
'''

'''
对CPU密集型代码(比如循环计算) - 多进程效率更高
对IO密集型代码(比如文件操作，网络爬虫) - 多线程效率更高。
'''
from queue import Queue
import threading


q = Queue(1000)

def insert(q):
    import time
    time.sleep(2)
    print('insert start')

    q.put('xxxx')
    print('insert end')

def get(q):
    print('start ...')
    print(q.get())

    print('end ...')

t1 = threading.Thread(target=get, args=(q,))
t2 = threading.Thread(target=insert, args=(q,))

t1.start()
t2.start()

# t1.setDaemon(True)
t2.join()


